package app.controller;

import app.domain.Ur;
import app.domain.User;
import app.service.ServiceUr;
import app.service.ServiceUser;
import app.utils.RedisTemplateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.Date;
import java.util.List;

@RestController
//处理跨域请求
@CrossOrigin
@RequestMapping("/Register")
public class RegisterController {
    @Autowired
    private ServiceUser serviceUser;
    @Autowired
    private ServiceUr serviceUr;
    @Autowired
    private RedisTemplateUtils redisTemplateUtils;
    //注册方法
    @RequestMapping("verifyUser")
    public Boolean verifyUser(User user) {
        User queryData;
        try {
            //查询当前用户输入的账户名数据库中是否存在
            queryData = serviceUser.query(user.getUsername());
            //当返回的账户名信息不等于空的时候抛出异常提示用户名已经存在
            if (queryData != null) {
                throw new RuntimeException("账户已存在");
            }
            //设置账户注册时间
            user.setTime(new Date());
            //当数据库返回的账户名不存在的时候进行注册操作
            serviceUser.insert(user);
            //注册过后进行一次查询，以保证后续操作
            queryData = serviceUser.query(user.getUsername());
            //关联角色表信息
            serviceUr.insert(new Ur(queryData.getId(), 2));
            //删除缓存
            redisTemplateUtils.del("my-redis-cache2::"+user.getUsername());
            return true;
        } catch (Exception e) {
            return false;
        }
    }
}